package com.xcx.commoncore.entity.aclentity;

import com.baomidou.mybatisplus.annotation.*;

import java.util.ArrayList;
import java.util.Date;
import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author testjava
 * @since 2021-10-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="AclUser对象", description="用户表")
public class AclUser implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(name = "name",value = "真实姓名",required = false,example = "黄阳1")
    private String name;

    @ApiModelProperty(name = "username",value = "用户名称;用户名称保存openid",required = false,example = "o1R-t5u2TfEVeVjO9CPGdHPNw-to")
    private String username;

    @ApiModelProperty(name = "appid",value = "用户appid",required = false,example = "id12312231312")
    private String appid;


    @ApiModelProperty(name = "mobile",value = "手机号码",required = false,example = "18751196233")
    private String mobile;
    @ApiModelProperty(name = "registerType",value = "注册/1微信注册，2手机账号密码注册",required = false,example = "18751196233")
    private Integer registerType;

    @ApiModelProperty(name = "password",value = "密码")
    private String password;

    @ApiModelProperty(name = "nickName",value = "昵称;昵称")
    private String nickName;

    @ApiModelProperty(name = "birthday",value = "出生年月",required = false)
    private String birthday;

    @ApiModelProperty(name = "filePath",value = "文件保存路径",required = false)
    private String filePath;

    @ApiModelProperty(value = "性别;性别1男，0是女")
    private Integer sex;

    @ApiModelProperty(value = "年龄;年龄")
    private Integer age;

    @ApiModelProperty(name = "salary",value = "收入")
    private Integer salary;

    @ApiModelProperty(value = "城市;城市")
    private String cit;

    @ApiModelProperty(value = "身高")
    private String height;

    @ApiModelProperty(value = "体重")
    private String weight;

    @ApiModelProperty(value = "婚姻状态1未婚2.离异3丧偶")
    private Integer maritalStatus;

    @ApiModelProperty(value = "学历")
    private Integer profession;

    @ApiModelProperty(value = "市;市")
    private String district;

    @ApiModelProperty(value = "乡村;乡村")
    private String villages;

    @ApiModelProperty(value = "省份;省份")
    private String provin;

    @ApiModelProperty(value = "详细地址")
    private String userAddress;

    @ApiModelProperty(value = "是否禁用;是否禁用1禁用，0未禁用")
    private Integer isDisabled;



    @ApiModelProperty(name = "aclUserDeatils",value = "用户详情信息")
    @TableField(exist = false)
    public AclUserDeatils aclUserDeatils;


    @ApiModelProperty(name = "aclChooseMode",value = "用户详情信息")
    @TableField(exist = false)
    public AclChooseMode aclChooseMode;



    @ApiModelProperty(name = "aclRole",value = "用户角色列表")
    @TableField(exist = false)
    public List<AclRole> aclRole = new ArrayList<>();


    @ApiModelProperty(name = "aclPermissionList",value = "菜单权限角色列表")
    @TableField(exist = false)
    public List<AclPermission> aclPermissionList = new ArrayList<>();








    @ApiModelProperty(value = "逻辑删除 1（true）已删除， 0（false）未删除")
    @TableLogic
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer isDeleted;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date gmtCreate;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date gmtModified;


}
